﻿using Ewell.Interface.Common.Model.Constant;
using Ewell.Interface.Common.Model.GateWay.Dto.Dict;
using Ewell.Interface.Common.Model.GateWay.Dto.Out;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ewell.Interface.Common.Model.GateWay.GateWayUriInfo
{
    public class FormPrintManagementDubboService : GateWayUri
    {
        public override string url => "dubbo/cc.ewell.his.dict.service.inter.dubbo.FormPrintManagementDubboService";
        public GateWayMethod queryFormInfoByID => new QueryFormInfoByID(url);
        public GateWayMethod queryFormInfoByFormCodes => new QueryFormInfoByFormCodes(url);
    }

    public class QueryFormInfoByID : GateWayMethod
    {
        public QueryFormInfoByID(string baseUrl) : base(baseUrl)
        {
        }

        public override string methodName => "queryFormInfoByID";

        public override string paramClass => "co.faao.plugin.page.PageHeader";

        public override DubboParamType paramType => DubboParamType.messageheaderDoamin;

        public override Type requestParamType => typeof(QueryFormInfoByIDRequest);

        public override Type responseParamType => typeof(FormPrintResp);
    }

    public class QueryFormInfoByFormCodes : GateWayMethod
    {
        public QueryFormInfoByFormCodes(string baseUrl) : base(baseUrl)
        {
        }

        public override string methodName => "queryFormInfoByFormCodes";

        public override string paramClass => "co.faao.plugin.transmission.request.MessageHeader";

        public override DubboParamType paramType => DubboParamType.messageheaderDoamin;

        public override Type requestParamType => typeof(QueryFormInfoReq);

        public override Type responseParamType => typeof(List<FormPrintResp>);
    }
}
